###################################################
##名称：钢构钢柱sketchup ruby api类封装代码
##作者：钢之炼筋术士
##日期：2024.1.5 未完成
##测试软件：sketchup pro 2023  
##测试版本：23.0.367 64位
##参考文档：ruby.sketchup.com;www.runoob.com/ruby/
##################################################




class GZ

    def initialize(bClk,eClk,paraArray,cpModelName,cpNumName,cpType)

      ########钢柱类型编号说明########
      @cpType = cpType
      ### 1 = H型钢柱 参数说明：h-高；b-宽；fh-腹板厚;yh-翼缘厚；(Y向)
      ### 2 = □型钢柱 参数说明：h-高；b-宽；fh-壁厚;
      ### 3 = 十型钢柱 参数说明：h-高；b-宽；fh-腹板厚;yh-翼缘厚；(Y向)h-高；b-宽；fh-腹板厚;yh-翼缘厚；(X向)
      
      #####构造对应参数######
        @bClkPos = bClk                             #起始点坐标
        @eClkPos = eClk                             #结束点坐标



        @cpModelName = cpModelName                  #构件型号
        @cpNumName = cpNumName                      #构件编号

        #####换算参数########
        @cpVector = bClk.vector_to(eClk)                                            #线型构件的向量
        @angToNormal = @cpVector.angle_between [0,0,1]                              #与Zaixs的夹角，弧度值
        @crossVector = @cpVector.cross [0,0,-1]                                     #与Zaixs的差积向量
        @rota = Geom::Transformation.rotation([0,0,0], @crossVector, @angToNormal)  #转动参数

        @cpVectorToOxyPlane = Geom::Vector3d.new(@cpVector.x,@cpVector.y,0)
        @angToXaixsAndxyVt = @cpVectorToOxyPlane.angle_between [1,0,0] 
        if @eClkPos.y < @bClkPos.y
          @angToXaixsAndxyVt = 360.degrees - @angToXaixsAndxyVt
        end
                                                              
        @cplength = bClk.distance(eClk)                       #线型构件的长度
        @numOfinch = 25.4                                     #英寸毫米换算参数

        ####群组结构######
        @model = Sketchup.active_model
        @group = @model.active_entities.add_group      #最外层群组       
        
        
    end

    def drawGZ
    
        drawHGZ if @cpType == 1
        drawRectPipeGZ if @cpType == 2
        drawDHGZ if @cpType == 3
      
    end






    


end